').css('line-height', $(window).height() + "px")
.appendTo($("body"));
var closeBtn = $('
')
.click(close);
closeBtn.appendTo(imgContainer);
showArrows();
}
move(current);
});
};
function move(index) {
if (index < 0 || index >= images.length) {
return;
}
showError(false);
current = index;
$(".tpn-lightbox-wrapper .tpn-lightbox-image:not(.active)").remove();
var active = $(".tpn-lightbox-wrapper .active");
var target = $('
').click(function () {
if ($(this).hasClass("active")) {
move(current + 1);
}
});
if (active.length > 0) {
active.after(target);
} else {
$(".tpn-lightbox-wrapper").append(target);
}
showArrows();
showLoader(true);
bindMouse($(".tpn-lightbox-wrapper").add(target));
target.load(function () {
showLoader(false);
active.removeClass("active");
target.addClass("active");
});
target.error(function () {
showLoader(false);
active.removeClass("active");
target.addClass("active");
target.attr("src", $(images[current]).attr("src"));
});
}
function showArrows() {
if ($(".tpn-lightbox-wrapper .arrow").length === 0) {
$(".tpn-lightbox-wrapper").append(
$('
')
.css("top", $(window).height() / 2 - 40)
.click(function () {
if (!$(this).hasClass("disabled")) {
move(current - 1);
}
})
);
$(".tpn-lightbox-wrapper").append(
$('
')
.css("top", $(window).height() / 2 - 40)
.click(function () {
if (!$(this).hasClass("disabled")) {
move(current + 1);
}
})
);
}
if (current === 0) {
$(".tpn-lightbox-wrapper .arrow.left").addClass("disabled");
} else {
$(".tpn-lightbox-wrapper .arrow.left").removeClass("disabled");
}
if (current === images.length - 1) {
$(".tpn-lightbox-wrapper .arrow.right").addClass("disabled");
} else {
$(".tpn-lightbox-wrapper .arrow.right").removeClass("disabled");
}
}
function showError(enable) {
if (enable) {
$(".tpn-lightbox-wrapper").append($('
The requested content cannot be loaded.
Please try again later.
')
.css({ "top": $(window).height() / 2 - 60, "left": $(window).width() / 2 - 170 }));
} else {
$(".tpn-lightbox-wrapper .lightbox-error").remove();
}
}
function showLoader(enable) {
if (!enable) {
$(".tpn-lightbox-wrapper .loading").remove();
}
else {
$('
').css({ "top": $(window).height() / 2 - 16, "left": $(window).width() / 2 - 16 }).appendTo($(".tpn-lightbox-wrapper"));
}
}
var close = function () {
$(".tpn-lightbox-wrapper").remove();
};
function bindMouse(img) {
img.bind('mousewheel DOMMouseScroll', function (e) {
var orgEvent = window.event || e.originalEvent;
var delta = (orgEvent.wheelDelta ? orgEvent.wheelDelta : orgEvent.detail * -1) > 0 ? 1 : -1;
move(current + delta);
e.preventDefault();
}).mousedown(function (e) {
// close on middle button click
if (e.which === 2) {
close();
}
e.preventDefault();
});
}
function getFullImgSrc(src) {
var fileName = src.substring(0, src.lastIndexOf('.'));
var ext = src.substring(src.lastIndexOf('.'));
return fileName + "-large" + ext;
}
});
})(jQuery);
jQuery(function () {
'use strict';
new ThemeLightbox().init();
});
(function ($) {
'use strict';
// transition && transitionEnd && browser prefix
$.support.themeTransition = (function () {
var thisBody = document.body || document.documentElement,
thisStyle = thisBody.style,
support = thisStyle.transition !== undefined ||
thisStyle.WebkitTransition !== undefined ||
thisStyle.MozTransition !== undefined ||
thisStyle.MsTransition !== undefined ||
thisStyle.OTransition !== undefined;
return support && {
event: (function () {
return "transitionend webkitTransitionEnd otransitionend oTransitionEnd";
})(),
prefix: (function () {
return ({
opera: "-o-",
firefox: "-moz-",
chrome: "-webkit-",
safari: "-webkit-",
ie: ""
}[browser.name] || "");
})()
};
})();
window.BackgroundHelper = function () {
var slides = [];
var direction = "next";
var motion = "horizontal";
var width = 0;
var height = 0;
var multiplier = 1;
var originalWidth = 0;
var originalHeight = 0;
var transitionDuration = "";
this.init = function (motionType, dir, duration) {
direction = dir;
motion = motionType;
slides = [];
width = 0;
height = 0;
multiplier = 1;
originalWidth = 0;
originalHeight = 0;
transitionDuration = duration;
};
this.processSlide = function (element, modify) {
this.updateSize(element, null);
var pos = [];
var bgPosition = element.css("background-position");
var positions = bgPosition.split(",");
$.each(positions, function (i) {
var position = $.trim(this);
var point = position.split(" ");
var zeroValue = browser.ie && browser.version >= 10 ? 0.1 : 0;
if (point.length > 1) {
var x = point[0].indexOf('%') === -1 ? parseFloat(point[0], 10) : zeroValue;
var y = point[1].indexOf('%') === -1 ? parseFloat(point[1], 10) : zeroValue;
pos.push({ x: x, y: y });
} else {
pos.push({ x: zeroValue, y: zeroValue });
}
});
slides.push({
"images": element.css("background-image"),
"sizes": element.css("background-size"),
"positions": pos
});
if (modify)
element.css("background-image", "none");
};
this.updateSize = function (element, initialSize) {
width = element.outerWidth(false);
height = element.outerHeight();
if (initialSize && parseInt(initialSize.width, 10) !== 0) {
originalWidth = parseInt(initialSize.width, 10);
originalHeight = parseInt(initialSize.height, 10);
if (motion === "fade") {
$.each(element.children(), function (i) {
$(this).css("background-position", getCssPositions(slides[i].positions, { x: 0, y: 0 }));
});
}
}
};
this.setBackground = function (element, items) {
var bg = [];
var sizes = [];
$.each(items, function (i, o) {
bg.push(o.images);
sizes.push(o.sizes);
});
element.css({
"background-image": bg.join(", "),
//"background-size": sizes.join(", "),
"background-repeat": "no-repeat"
});
};
this.setPosition = function (element, items) {
var pos = [];
$.each(items, function (i, o) {
pos.push(o.positions);
});
element.css({
"background-position": pos.join(", ")
});
};
this.current = function (index) {
return slides[index] || null;
};
this.next = function (index) {
var next;
if (direction === "next") {
next = (index + 1) % slides.length;
} else {
next = index - 1;
if (next < 0) {
next = slides.length - 1;
}
}
return slides[next];
};
this.items = function (prev, next, move) {
var prevItem = { x: 0, y: 0 };
var nextItem = { x: 0, y: 0 };
var isDirectionNext = direction === "next";
var verticalOffset = -(originalHeight - height) / 2;
var horizontalOffset = -(originalWidth - width) / 2;
if (motion === "horizontal") {
prevItem.y = nextItem.y = -(originalHeight - height) / 2;
prevItem.x = horizontalOffset;
nextItem.x = (isDirectionNext ? originalWidth : -originalWidth) + horizontalOffset;
if (move) {
prevItem.x += isDirectionNext ? -originalWidth : originalWidth;
nextItem.x += isDirectionNext ? -originalWidth : originalWidth;
}
} else if (motion === "vertical") {
prevItem.x = nextItem.x = horizontalOffset;
prevItem.y = verticalOffset;
nextItem.y = (isDirectionNext ? originalHeight : -originalHeight) + verticalOffset;
if (move) {
prevItem.y += isDirectionNext ? -originalHeight : originalHeight;
nextItem.y += isDirectionNext ? -originalHeight : originalHeight;
}
}
var result = [];
if (!!prev) {
result.push({ images: prev.images, positions: getCssPositions(prev.positions, prevItem), sizes: prev.sizes });
}
if (!!next) {
result.push({ images: next.images, positions: getCssPositions(next.positions, nextItem), sizes: next.sizes });
}
if (direction === "next") {
result.reverse();
}
return result;
};
this.transition = function (container, on) {
container.css($.support.themeTransition.prefix + "transition", on ? "background-position " + transitionDuration + " ease-in-out" : "");
};
function getCssPositions(positions, offset) {
var result = [];
if (positions === undefined) {
return "";
}
offset.x = offset.x || 0;
offset.y = offset.y || 0;
for (var i = 0; i < positions.length; i++) {
result.push((positions[i].x * 1 + offset.x) + "px " + (positions[i].y * 1 + offset.y) + "px");
}
return result.join(", ");
}
};
var ThemeSlider = function (element, settings) {
var interval = null;
var active = false;
var children = element.find(".active").parent().children();
var last = false;
var running = false;
this.settings = $.extend({}, {
"animation": "horizontal",
"direction": "next",
"speed": 600,
"pause": 2500,
"auto": true,
"repeat": true,
"navigator": null,
"clickevents": true,
"hover": true,
"helper": null
}, settings);
this.move = function (direction, next) {
var activeItem = element.find(".active"),
nextItem = next || activeItem[direction](),
innerDirection = this.settings.direction === "next" ? "forward" : "back",
reset = direction === "next" ? "first" : "last",
moving = interval,
slider = this, tmp;
active = true;
if (moving) { this.stop(true); }
if (!nextItem.length) {
nextItem = element.find(".tpn-slide-item")[reset]();
if (!this.settings.repeat) { last = true; active = false; return; }
}
if ($.support.themeTransition) {
nextItem.addClass(this.settings.direction);
tmp = nextItem.get(0).offsetHeight;
activeItem.addClass(innerDirection);
nextItem.addClass(innerDirection);
element.trigger("beforeSlide", children.length);
element.one($.support.themeTransition.event, function () {
nextItem.removeClass(slider.settings.direction)
.removeClass(innerDirection)
.addClass("active");
activeItem.removeClass("active")
.removeClass(innerDirection);
active = false;
setTimeout(function () {
element.trigger("afterSlide", children.length);
}, 0);
});
} else {
element.trigger("beforeSlide", children.length);
activeItem.removeClass("active");
nextItem.addClass("active");
active = false;
element.trigger("afterSlide", children.length);
}
this.navigate(nextItem);
if (moving) { this.start(); }
};
this.navigate = function (position) {
var index = children.index(position);
$(this.settings.navigator).children().removeClass("active").eq(index).addClass("active");
};
this.to = function (index) {
var activeItem = element.find(".active"),
children = activeItem.parent().children(),
activeIndex = children.index(activeItem),
slider = this;
if (index > (children.length - 1) || index < 0) {
return;
}
if (active) {
return element.one("afterSlide", function () {
slider.to(index);
});
}
if (activeIndex === index) {
return;
}
this.move(index > activeIndex ? "next" : "prev", $(children[index]));
};
this.next = function () {
if (!active) {
if (last) { this.stop(); return; }
this.move("next");
}
};
this.prev = function () {
if (!active) {
if (last) { this.stop(); return; }
this.move("prev");
}
};
this.start = function (force) {
if (!!force) {
setTimeout($.proxy(this.next, this), 10);
}
interval = setInterval($.proxy(this.next, this), this.settings.pause);
running = true;
};
this.stop = function (pause) {
clearInterval(interval);
interval = null;
running = !!pause;
active = false;
};
this.active = function () {
return running;
};
this.moving = function () {
return active;
};
this.navigate(children.filter(".active"));
if (this.settings.clickevents) {
$(this.settings.navigator).on("click", "a", { slider: this }, function (event) {
var activeIndex = children.index(children.filter(".active"));
var index = $(this).parent().children().index($(this));
if (activeIndex !== index) {
event.data.slider.to(index);
}
event.preventDefault();
});
}
if (this.settings.hover) {
var slider = this;
element.add(this.settings.navigator)
.add(element.siblings(".tpn-shapes")).hover(function () {
if (element.is(":visible") && !last) { slider.stop(true); }
}, function () {
if (element.is(":visible") && !last) { slider.start(); }
});
}
};
$.fn.themeSlider = function (arg) {
return this.each(function () {
var element = $(this),
data = element.data("slider"),
options = typeof arg === "object" && arg;
if (!data) {
data = new ThemeSlider(element, options);
element.data("slider", data);
}
if (typeof arg === "string" && data[arg]) {
data[arg]();
} else if (data.settings.auto && element.is(":visible")) {
data.start();
}
});
};
})(jQuery);
if (typeof window.resizeData === 'undefined') window.resizeData = {};
window.resizeData.headerPageWidth = true;
if (typeof window.defaultResponsiveData === 'undefined') window.defaultResponsiveData = [false, true, true, true, true, ];
resizeData['headline'] = {
responsive: [
{ left: 0.01, top: 0.43, visible: true },
{ left: 0.01, top: 0.43, visible: true },
{ left: 0.01, top: 0.43, visible: true },
{ left: 0.01, top: 0.43, visible: true },
{ left: 0.01, top: 0.43, visible: true },
],
area: {
x: 0,
y: 0
},
width: 192,
height: 43,
autoWidth: true};
// used to apply compicated values in style like '!important!
function applyCss(object, param, value) {
var rg = new RegExp(param + '\s*:\s*[^;]+;', "i");
var style = object.attr('style');
var str = param + ': ' + value + ';';
if (rg.test(style)) {
style = style.replace(rg, str);
}
else {
style += '; ' + str;
}
object.attr('style', style);
}
// convert universal coord to pixels
function uniToPx(uni, size, parentSize) {
uni = parseFloat(uni || '0');
if (uni < 0) {
uni = uni * size;
} else if (uni >= 1) {
uni = parentSize - (2 - uni) * size;
} else {
uni = uni * (parentSize - size);
}
return uni;
}
function isContentSlider(object) {
var isHeader = object.parents('header').length > 0;
if (isHeader) {
return false;
}
var isPageSlider = object.parents('.tpn-pageslider').length > 0;
if (isPageSlider)
return false;
return true;
}
function sheetLeftFunc(sheet, object) {
var sheetLeft = sheet.offset().left;
var isHeader = object.parents('header').length > 0;
if (isHeader) {
if (resizeData.headerPageWidth) return sheetLeft;
} else {
var isPageSlider = object.parents('.tpn-pageslider').length > 0;
if (isPageSlider) {
if (resizeData.pageSliderPageWidth) return sheetLeft;
}
}
return 0;
}
var headerObjectResizer = {
postInit: false,
resize: (function ($) {
'use strict';
return function () {
if (!headerObjectResizer.postInit && typeof responsiveDesign !== 'undefined') {
$(window).on('responsiveResize', headerObjectResizer.resize);
headerObjectResizer.postInit = true;
}
var responsiveType = 0;
// if we don't use full custom responsive so we MUST cleanup all styles
var cleanUpStyles = false;
// when use default respo so while in desktop mode always use 0-type, in other case cleanup our styles
if (typeof responsiveDesign !== 'undefined' &&
defaultResponsiveData[responsiveDesign.responsiveTypeIdx] &&
responsiveDesign.isResponsive) {
cleanUpStyles = true;
}
if (typeof responsiveDesign !== 'undefined') {
if (responsiveDesign.responsiveType === 'tabletlandscape') {
responsiveType = 1;
} else if (responsiveDesign.responsiveType === 'tabletportrait') {
responsiveType = 2;
} else if (responsiveDesign.responsiveType === 'phonelandscape') {
responsiveType = 3;
} else if (responsiveDesign.responsiveType === 'phoneportrait') {
responsiveType = 4;
}
}
var sheet = $('.tpn-sheet');
var sheetWidth = sheet.outerWidth();
var header = $('header');
var height = 0;
var cssPrefix = 'tpn-';
// move html shapes
var headerQuery = 'header.tpn-header .tpn-shapes>*, header.tpn-header .tpn-textblock, header.tpn-header>.tpn-headline, header.tpn-header>.tpn-slogan, header.tpn-header>.tpn-positioncontrol, header.tpn-header>.tpn-logo';
var pageSliderQuery = '.tpn-pageslider .tpn-slide-item>*';
if (headerObjectResizer.isPreview) {
headerQuery = 'header .tpn-slider';
pageSliderQuery = '.tpn-pageslider .tpn-slider, .tpn-pageslider .tpn-textblock';
}
$(headerQuery + ', ' + pageSliderQuery).each(function () {
var object = $(this);
height = object.parent().height();
var off = sheetLeftFunc(sheet, object);
var cls = object.attr('class').split(' ');
$.each(cls, function (key, val) {
val = $.trim(val);
if (val.length === 0) return;
if (val.indexOf(cssPrefix) !== 0) return;
val = val.substring(cssPrefix.length);
var data = resizeData[val];
if (typeof data === 'undefined') return;
if (cleanUpStyles) {
object.css('display', '');
object.css('left', '');
object.css('margin-left', '');
}
var respData = data.responsive[responsiveType];
if (respData.visible) {
object.css('display', '');
} else {
applyCss(object, 'display', 'none !important');
}
if (cleanUpStyles || !respData.visible) return false;
var x = uniToPx(respData.left, data.autoWidth ? object.width() : data.width, sheetWidth);
x += off;
var y = uniToPx(respData.top, data.height, height);
object.css('left', x + 'px');
object.css('top', y + 'px');
applyCss(object, 'margin-left', '0px !important');
return false;
});
});
// move images in slide's background-images
var slides = $('.tpn-slide-item').add(header);
if (browser.ie && browser.version <= 8) {
slides = slides.add('.tpn-slide-item .ie8fix');
}
$.each(slides, function (slideIdx, slide) {
slide = $(slide);
if (slide.closest('.tpn-collage').length > 0 || cleanUpStyles) {
slide.css('background-position', '');
return;
}
var slideVisible = slide.is(':visible');
if (!slideVisible && browser.ie) {
slide.css('display', 'block');
}
var off = sheetLeftFunc(sheet, slide);
if (browser.ie && browser.version <= 8) {
var s = slide.attr('style');
if (s) {
s = s.replace(/background\-position[^;]+/, '');
slide.attr('style', s);
}
} else {
slide.css('background-position', '');
}
slide.css('background-size', '');
var bgImage = slide.css('background-image') ? slide.css('background-image').split(',') : [];
var bgPosition = slide.css('background-position') && (slide.css('background-position').replace(/[0][^\d]+/gi, '')).length > 0 ?
slide.css('background-position').split(',') :
[];
if (bgImage.length !== bgPosition.length) {
slide.css('display', '');
return;
}
height = slide.height();
if (height === 0) height = slide.parent().height();
$.each(bgImage, function (idx, val) {
var findImageIdx = val.lastIndexOf('images/');
var findDotIdx = val.lastIndexOf('.');
if (findImageIdx === -1 || findDotIdx === -1) return;
var name = val.substring(findImageIdx + 7, findDotIdx);
var data = resizeData[name];
if (typeof data === 'undefined') return;
var respData = data.responsive[responsiveType];
// big default coordinates for hiding
var x = 9999, y = 9999;
if (respData.visible) {
x = uniToPx(respData.left, data.width, sheetWidth);
x += off + data.area.x;
y = uniToPx(respData.top, data.height, height);
y += data.area.y;
}
bgPosition[idx] = x + 'px ' + y + 'px';
});
slide.css('background-position', bgPosition.join(','));
if (!slideVisible && browser.ie) {
slide.css('display', '');
}
});
};
})(jQuery),
initialize: function ($) {
if (!browser.ie || browser.version > 8) {
$(window).on('resize', this.resize);
} else {
var resizeTimeout;
var self = this;
$(window).on("resize", function () {
clearTimeout(resizeTimeout);
resizeTimeout = setTimeout(function () { self.resize(); }, 25);
});
}
}
};
headerObjectResizer.initialize(jQuery);
jQuery(function ($) {
"use strict";
if (!browser.ie || browser.version > 8)
return;
processElementMultiplyBg(".tpn-header", {
"bgimage": "url('images/header.jpg')",
"bgposition": "center top",
"images": "",
"positions": ""
});
});
if (typeof window.resizeData === 'undefined') window.resizeData = {};
window.resizeData.pageSliderPageWidth = false;
jQuery(function ($) {
'use strict';
artButtonSetup("button");
var indexURL = $('link[rel="home"]').attr('href');
var iframeTagPart = ['
'];
if(indexURL && $('header.clickable').length) {
if($('#tpn-header-bg').length) {
$('header').append(
(browser.ie ? iframeTagPart[0] + 'style="position:absolute;height:100%;width:40000px;left:-20000px;' + iframeTagPart[1] : '' ) +
'
');
} else {
$('header').append(
(browser.ie ? iframeTagPart[0] + 'style="position:absolute;height:100%;width:100%;' + iframeTagPart[1] : '' ) +
'
');
}
}
});
// source --> https://themaildrop.com/wp-content/themes/mail_drop_v1/script.responsive.js?ver=4.9.11
/* Created by The Web Design Ninja */
/*jshint forin:true, noarg:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, curly:false, browser:true, jquery:false */
/*global jQuery */
var responsiveDesign = {
isResponsive: false,
isDesktop: false,
isTablet: false,
isPhone: false,
lockedResponsiveMode: '', // free mode from start
responsiveType: 'desktop',
responsiveTypeIdx: 1,
lockedResponsiveType: '',
isCurrentDefaultResponsive: false,
defaultResponsive: [ false, true, true, true, true ], // turn on/off old or new responsive modes
windowWidth: 0,
responsive: (function ($) {
"use strict";
return function () {
var html = $("html");
this.windowWidth = $(window).width();
var triggerEvent = false;
var isRespVisible = $("#tpn-resp").is(":visible");
if (this.lockedResponsiveMode === 'desktop') isRespVisible = false;
if (isRespVisible && !this.isResponsive) {
html.addClass("responsive").removeClass("desktop");
this.isResponsive = true;
this.isDesktop = false;
triggerEvent = true;
} else if (!isRespVisible && !this.isDesktop) {
html.addClass("desktop").removeClass("responsive default-responsive responsive-tablet responsive-phone");
this.isResponsive = this.isTablet = this.isPhone = false;
this.isDesktop = true;
triggerEvent = true;
}
if (this.isResponsive) {
// additional check to lock responsive mode
var isTablet = this.lockedResponsiveMode === 'tablet' || ($("#tpn-resp-t").is(":visible") && this.lockedResponsiveMode === '');
var isPhone = this.lockedResponsiveMode === 'phone' || ($("#tpn-resp-m").is(":visible") && this.lockedResponsiveMode === '');
if (isTablet && !this.isTablet) {
html.addClass("responsive-tablet").removeClass("responsive-phone");
this.isTablet = true;
this.isPhone = false;
triggerEvent = true;
} else if (isPhone && !this.isPhone) {
html.addClass("responsive-phone").removeClass("responsive-tablet");
this.isTablet = false;
this.isPhone = true;
triggerEvent = true;
}
}
var prevResponsiveIndx = this.responsiveTypeIdx;
if (this.lockedResponsiveType === 'tabletlandscape' || ($("#tpn-resp-tablet-landscape").is(":visible") && this.lockedResponsiveType === '')) {
this.responsiveType = 'tabletlandscape';
this.responsiveTypeIdx = 1;
} else if (this.lockedResponsiveType === 'tabletportrait' || ($("#tpn-resp-tablet-portrait").is(":visible") && this.lockedResponsiveType === '')) {
this.responsiveType = 'tabletportrait';
this.responsiveTypeIdx = 2;
} else if (this.lockedResponsiveType === 'phonelandscape' || ($("#tpn-resp-phone-landscape").is(":visible") && this.lockedResponsiveType === '')) {
this.responsiveType = 'phonelandscape';
this.responsiveTypeIdx = 3;
} else if (this.lockedResponsiveType === 'phoneportrait' || ($("#tpn-resp-phone-portrait").is(":visible") && this.lockedResponsiveType === '')) {
this.responsiveType = 'phoneportrait';
this.responsiveTypeIdx = 4;
} else { //if (this.lockedResponsiveType === 'desktop' || ($("#tpn-resp-desktop").is(":visible") && this.lockedResponsiveType === '')) {
this.responsiveType = 'desktop';
this.responsiveTypeIdx = 0;
}
if (triggerEvent || prevResponsiveIndx !== this.responsiveTypeIdx) {
triggerEvent = true;
if (this.isResponsive && this.defaultResponsive[ this.responsiveTypeIdx ]) {
this.isCurrentDefaultResponsive = true;
html.removeClass('custom-responsive').addClass('default-responsive');
} else {
this.isCurrentDefaultResponsive = false;
html.removeClass('default-responsive').addClass('custom-responsive');
}
}
if (triggerEvent) {
$(window).trigger("responsive", this);
}
$(window).trigger("responsiveResize", this);
};
})(jQuery),
initialize: (function ($) {
"use strict";
return function () {
// get correct defaultResponsive
if (typeof defaultResponsiveData !== 'undefined') responsiveDesign.defaultResponsive = defaultResponsiveData;
$("
").appendTo("body");
$('
').appendTo('body');
/* (1) Use this code for debug instead of (2):
* var resizeTimeout;
* $(window).resize(function () {
* clearTimeout(resizeTimeout);
* resizeTimeout = setTimeout(function () { responsiveDesign.responsive(); }, 50);
* });
*/
/* (2) Use this code for production and comment (1): */
$(window).resize(function () {
responsiveDesign.responsive();
});
$(window).trigger("resize");
};
})(jQuery),
// lock responsive in some mode: desktop, tablet or phone for editor
lockResponsiveType: function (mode) {
responsiveDesign.lockedResponsiveType = mode;
if (mode.indexOf('tablet') === 0) mode = 'tablet';
if (mode.indexOf('phone') === 0) mode = 'phone';
responsiveDesign.lockedResponsiveMode = mode;
},
// using in editor to turn off default responsive
toogleDefaultResponsive: function (type, val) {
var old = responsiveDesign.defaultResponsive[ type ];
responsiveDesign.defaultResponsive[ type ] = val;
if (old !== val) responsiveDesign.responsiveTypeIdx = -1;
}
};
function responsiveAbsBg(responsiveDesign, el, bg) {
"use strict";
if (bg.length === 0)
return;
var desktopBgTop = bg.attr("data-bg-top");
var desktopBgHeight = bg.attr("data-bg-height");
if (responsiveDesign.isResponsive) {
if (typeof desktopBgTop === "undefined" || desktopBgTop === false) {
bg.attr("data-bg-top", bg.css("top"));
bg.attr("data-bg-height", bg.css("height"));
}
var elTop = el.offset().top;
var elHeight = el.outerHeight();
bg.css("top", elTop + "px");
bg.css("height", elHeight + "px");
} else if (typeof desktopBgTop !== "undefined" && desktopBgTop !== false) {
bg.css("top", desktopBgTop);
bg.css("height", desktopBgHeight);
bg.removeAttr("data-bg-top");
bg.removeAttr("data-bg-height");
}
}
var responsiveImages = (function ($) {
"use strict";
return function (responsiveDesign) {
$("img[width]").each(function () {
var img = $(this), newWidth = "", newMaxWidth = "", newHeight = "";
if (responsiveDesign.isResponsive) {
newWidth = "auto";
newHeight = "auto";
newMaxWidth = "100%";
var widthAttr = img.attr("width");
if (widthAttr !== null && typeof (widthAttr) === "string" && widthAttr.indexOf("%") === -1) {
newWidth = "100%";
newMaxWidth = parseInt($.trim(widthAttr), 10) + "px";
}
}
img.css("width", newWidth).css("max-width", newMaxWidth).css("height", newHeight);
});
};
})(jQuery);
var responsiveVideos = (function ($) {
"use strict";
return function (responsiveDesign) {
$("iframe[width],object[width],embed[width]").each(function () {
var obj = $(this);
if ((obj.is('[width]') && obj.attr("width").indexOf("%") !== -1) ||
(obj.is('[class]') && obj.attr("class").indexOf("twitter") !== -1) ||
(obj.id && obj.id.indexOf("google") !== -1))
return;
var container = obj.parent(".tpn-responsive-embed");
if (responsiveDesign.isResponsive) {
if (container.length !== 0)
return;
container = $("
").insertBefore(obj);
obj.appendTo(container);
} else if (container.length > 0) {
obj.insertBefore(container);
container.remove();
}
});
};
})(jQuery);
// this must be called for collages only!
var responsiveTextblocks = (function ($) {
"use strict";
return function (slider, responsiveDesign) {
slider.find(".tpn-textblock").each(function () {
if (parseInt(slider.attr("data-width"), 10) === 0) {
return true;
}
var tb = $(this);
var c = slider.width() / slider.attr("data-width");
tb.css({
"height": "",
"width": "",
"top": "",
"margin-left": ""
});
if (responsiveDesign.isResponsive) {
var tbHeight = parseInt(tb.css("height"), 10);
var tbWidth = parseInt(tb.css("width"), 10);
var tbTop = parseInt(tb.css("top"), 10);
var tbMargin = parseInt(tb.css("margin-left"), 10);
tb.add(tb.find('div')).css({
"height": tbHeight * c,
"width": tbWidth * c
});
tb.css("top", tbTop * c);
tb.attr("style", function (i, s) { return s + "margin-left: " + (tbMargin * c) + "px !important"; });
}
});
};
})(jQuery);
var responsiveSlider = (function ($) {
"use strict";
return function (responsiveDesign) {
$(".tpn-slider").each(function () {
var s = $(this);
var isHeaderSlider = s.parent('.tpn-header').length > 0 || s.parent('.tpn-pageslider').length > 0;
if (!isHeaderSlider && responsiveDesign.isResponsive) {
responsiveTextblocks(s, responsiveDesign);
return;
}
var initialWidth = s.attr("data-width");
var initialHeight = s.attr("data-height");
// set size
var obj = s.data("slider");
if (!obj) {
return false;
}
var inner = s.find(".tpn-slider-inner");
if (!responsiveDesign.isResponsive && obj.settings.helper) {
obj.settings.helper.updateSize(inner, { width: initialWidth, height: initialHeight });
return;
}
// set slider
if (obj && obj.settings.helper) {
$(window).on("responsiveResize", function updateSize() {
if (obj.settings.animation === "fade") return;
if (responsiveDesign.isCurrentDefaultResponsive) {
obj.settings.helper.updateSize(inner, { width: initialWidth, height: initialHeight });
$.each(inner.children(), function () {
$(this).css(
"background-position",
-Math.floor(initialWidth / 2 - parseInt(inner.outerWidth(), 10) / 2) + "px" +
-Math.floor(initialHeight / 2 - parseInt(inner.outerHeight(), 10) / 2) + "px "
);
});
} else {
$(window).off("responsiveResize", updateSize);
}
});
}
});
};
})(jQuery);
var responsiveCollages = (function ($) {
"use strict";
return function (responsiveDesign) {
$(".tpn-collage").each(function() {
var collage = $(this);
var slider = collage.find(".tpn-slider");
var initialWidth = slider.attr("data-width");
var initialHeight = slider.attr("data-height");
var parent = collage.closest(':not(.image-caption-wrapper, .tpn-collage)');
var parentIcw = collage.closest('.image-caption-wrapper');
var parentWidth = parent.width();
var collageWidth = collage.width();
// for responsive try to make collage smaller
// a) no icw - check collage width and parent
// b) with icw - collage is bigger than icw
var doms = collage
.add(slider)
.add(collage.closest(".image-caption-wrapper"));
// so try to make collage smaller
if (responsiveDesign.isResponsive && collageWidth > parentWidth || (parentIcw.length > 0 && collageWidth > parentIcw.width())) {
doms.css("width", "100%");
}
// but if icw make collage too bit reset it width to noraml
collageWidth = collage.width();
if (collageWidth > initialWidth) {
doms.css("width", "");
}
var c = slider.width() / initialWidth;
var h = c * initialHeight;
slider.css("height", h + "px");
});
};
})(jQuery);
jQuery(window).bind("responsive", (function ($) {
"use strict";
return function (event, responsiveDesign) {
// so this event is main and it generate sub events to make important changes before we will modify slider
// for example we move out of slider menu button, and it change slider size
$(window).trigger('responsivePage', responsiveDesign);
responsiveImages(responsiveDesign);
responsiveVideos(responsiveDesign);
responsiveSlider(responsiveDesign);
responsiveNavigator(responsiveDesign);
};
})(jQuery));
jQuery(window).bind("responsiveResize", (function ($) {
"use strict";
return function (event, responsiveDesign) {
responsiveCollages(responsiveDesign);
responsiveNavigator(responsiveDesign);
};
})(jQuery));
jQuery(function ($) {
if (!browser.ie || browser.version > 8) return;
var timeout;
$(window).on("resize", function () {
clearTimeout(timeout);
timeout = setTimeout(function() {
responsiveCollages(responsiveDesign);
responsiveNavigator(responsiveDesign);
}, 25);
});
responsiveCollages(responsiveDesign);
responsiveNavigator(responsiveDesign);
});
var responsiveHeader = (function ($) {
"use strict";
return function(responsiveDesign) {
var header = $("header.tpn-header");
var headerSlider = header.find(".tpn-slider");
if (headerSlider.length) {
var firstSlide = headerSlider.find(".tpn-slide-item").first();
var slidebg = firstSlide.css("background-image").split(",");
var previousSibling = headerSlider.prev();
var sliderNav = headerSlider.siblings(".tpn-slidenavigator");
if (slidebg.length && responsiveDesign.isResponsive) {
// if prev is menu in header
if (previousSibling.is("nav.tpn-nav")) {
sliderNav.attr("data-offset", previousSibling.height());
}
} else {
sliderNav.removeAttr("data-offset");
header.removeAttr("style");
}
}
};
})(jQuery);
jQuery(window).bind("responsiveResize", (function ($) {
"use strict";
return function (event, responsiveDesign) {
responsiveAbsBg(responsiveDesign, $(".tpn-header"), $("#tpn-header-bg"));
};
})(jQuery));
jQuery(window).bind("responsive", (function ($) {
"use strict";
return function (event, responsiveDesign) {
if (browser.ie && browser.version <= 8) return;
if (responsiveDesign.isResponsive) {
$(window).on("responsiveResize.header", function () {
responsiveHeader(responsiveDesign);
});
} else {
$(window).trigger("responsiveResize.header");
$(window).off("responsiveResize.header");
}
};
})(jQuery));
jQuery(window).bind("responsiveResize", (function ($) {
"use strict";
return function (event, responsiveDesign) {
responsiveAbsBg(responsiveDesign, $("nav.tpn-nav"), $("#tpn-hmenu-bg"));
$(window).trigger("responsiveNav", { responsiveDesign: responsiveDesign });
};
})(jQuery));
var menuInHeader;
var menuInHeaderHack;
var responsiveNav = (function ($) {
"use strict";
return function (responsiveDesign) {
var header = $(".tpn-header");
var nav = $('.tpn-nav:not(.tpn-bar)');
if (typeof menuInHeader === 'undefined') {
nav = $('.tpn-header .tpn-nav');
menuInHeader = nav.length !== 0;
menuInHeaderHack = false;
}
if (!menuInHeader) return;
if (responsiveDesign.isResponsive) {
if (menuInHeaderHack) return;
menuInHeaderHack = true;
nav.insertAfter(header);
} else {
if (!menuInHeaderHack) return;
menuInHeaderHack = false;
header.append(nav);
}
};
})(jQuery);
jQuery(window).bind("responsivePage", function (event, responsiveDesign) {
"use strict";
responsiveNav(responsiveDesign);
});
jQuery(function ($) {
"use strict";
$(".tpn-hmenu a")
.click(function(e) {
var link = $(this);
if ($(".responsive").length === 0)
return;
var item = link.parent("li");
if (item.hasClass("active")) {
item.removeClass("active").children("a").removeClass("active");
} else {
item.addClass("active").children("a").addClass("active");
}
if (item.children("ul").length > 0) {
var href = link.attr("href");
link.attr("href", "#");
setTimeout(function () {
link.attr("href", href);
}, 300);
e.preventDefault();
}
})
.each(function() {
var link = $(this);
if (link.get(0).href === location.href) {
link.addClass("active").parents("li").addClass("active");
return false;
}
});
});
jQuery(function($) {
$('').insertBefore(".tpn-hmenu").click(function(e) {
var menu = $(this).next();
if (menu.is(":visible")) {
menu.slideUp("fast", function() {
$(this).removeClass("visible").css("display", "");
});
} else {
menu.slideDown("fast", function() {
$(this).addClass("visible").css("display", "");
});
}
e.preventDefault();
});
});
var responsiveLayoutCell = (function ($) {
"use strict";
return function (responsiveDesign) {
$(".tpn-content .tpn-content-layout-row,.tpn-footer .tpn-content-layout-row").each(function () {
var row = $(this);
var rowChildren = row.children(".tpn-layout-cell");
if (rowChildren.length > 0) {
var c;
row.removeClass("responsive-layout-row-2").removeClass("responsive-layout-row-3").removeClass("responsive-layout-row-1");
if (rowChildren.length === 1) {
c = 1;
row.addClass("responsive-layout-row-1");
} else if (rowChildren.length % 2 === 0) {
var c = 2;
row.addClass("responsive-layout-row-2");
} else {
var c = 3;
row.addClass("responsive-layout-row-3");
}
if (c > 0 && responsiveDesign.isTablet) {
rowChildren.addClass("responsive-tablet-layout-cell").each(function (i) {
if ((i + 1) % c === 0) {
$(this).after("
");
}
});
} else {
rowChildren.removeClass("responsive-tablet-layout-cell");
row.children(".responsive-cleared").remove();
}
}
});
};
})(jQuery);
jQuery(window).bind("responsive", function (event, responsiveDesign) {
"use strict";
responsiveLayoutCell(responsiveDesign);
});
/*global jQuery, responsiveDesign*/
//setTimeout(function () { $("html").addClass("desktop") }, 0);
if (!browser.ie || browser.version > 8) {
jQuery(responsiveDesign.initialize);
} else {
jQuery("html").addClass("desktop");
};